Changing display of data based on a time-lapse widget

ABSTRACT

A method, apparatus, system, and signal-bearing medium that, in an embodiment, display a time-lapse widget having time indicators associated with times. In an embodiment, each of the time indicators represents a relative ranking of changes to data at the times, and the size of the time indicators are proportional to the ranking. The data associated with the time indicators is displayed in response to a slider moving over the time indicators. In various embodiments, the time indicators may be associated with a time prior to the current time, in which case the associated data is historical or after the current time, in which case the associated data is forecasted. In an embodiment, data that has been changed associated with the time indicator currently selected via the position of the slider is emphasized. A current value and a previous value for the data associated with the time indicator may be displayed, and the current value may be changed to the previous value. In an embodiment, sliders in multiple dialogs having related data are moved together, where movement of one of the sliders causes corresponding movement of the other sliders, and each of the sliders is at a time indicator associated with the same time. In this way, related data that changes over time may be more easily viewed.

FIELD

This invention generally relates to graphical user interfaces forcomputer systems and more specifically relates to time-lapse scrollingof data in a graphical user interface.

BACKGROUND

The development of the EDVAC computer system of 1948 is often cited asthe beginning of the computer era. Since that time, computer systemshave evolved into extremely sophisticated devices that may be found inmany different settings. Computer systems typically include acombination of hardware (e.g., semiconductors, circuit boards, etc.) andsoftware (e.g., computer programs). As advances in semiconductorprocessing and computer architecture push the performance of thecomputer hardware higher, more sophisticated computer software hasevolved to take advantage of the higher performance of the hardware,resulting in computer systems today that are much more powerful thanjust a few years ago.

One of the most important developments in making computers not only morepowerful, but easier to use, was the development of sophisticated userinterfaces. Early computer systems were programmed with a series ofswitches or buttons and provided little relevant feedback during theoperation of the computer system. This type of interface provedcumbersome and, accordingly, increasingly more functional andinteractive interfaces were developed to extend the functionality ofcomputer systems.

One very popular user interface, that ultimately gained widespreadadoption on many different computer systems, was the “command lineinterface.” Using a command line interface, the user interacted with thecomputer system by typing a specific command on a keyboard to instructthe computer regarding the, desired operation to be performed. Thecommand line interface was not intuitive, however, and still limited theuse of computers to those who had the time and desire to learn a largenumber of relatively cryptic commands.

Recognizing the growing need for a more user-friendly interface,computer engineers and programmers developed the Graphical UserInterface (GUI). A GUI uses visual representations of common items toallow a user to operate a computer system. In most GUI-based systems,various icons, symbols, menus, etc. are manipulated or activated by acomputer user via a pointing device (e.g., a mouse, a trackball, ortrackpad), which allows the user to give instructions to the computer.The movement of the pointing device is usually translated to themovement of an animated arrow or cursor, displayed on the computerscreen. By moving the mouse or other pointing device, the user canposition the cursor at various locations on the computer screen. Then,by activating a button on the mouse, the user can invoke variouscommands and options.

The various graphical elements of a GUI are usually designed to besomewhat consistent and self-explanatory, thereby making it as easy aspossible for a typical user to perform common computer system functions.Over a period of several years, many visual components of GUI-basedsystems have become fairly standardized and most graphical interfaceshave specific elements which have become somewhat universal. Forexample, almost all GUI-based systems employ pull-down menus, scrollbars, button bars, and windows.

One use of these GUI elements is for the display of data that changesover time. A common way to display data that changes over time is a linechart, with time on a horizontal axis and the numeric values of thepoints of data on a vertical axis, so that different heights of thelines in the chart correspond to different numeric values of the data.For example, CPU or disk utilization in a computer system over time iscommonly displayed in a line chart. Unfortunately, with multiple datapoints (e.g., both CPU and disk utilization displayed on the samechart), each data point having its own line, the line chart quicklybecomes cluttered. Various techniques have been attempted to deal withthis problem, such as giving each data point its own color or its ownline format, such as a solid line versus a dotted line versus a dashedline. But as more data points are added, these techniques quickly losetheir effectiveness.

To further exacerbate these problems, some data that changes over timeis not so easily distilled to a simple numeric value for display on aline chart. For example, over time, a user may add, delete, and renamedirectories, sub-directories, and files in a file system. Or, a systemadministrator may, over time, add or change clients, servers, androuters in a network topology. Representing these kinds of data with asimple line chart showing numeric values changing over time does notprovide nearly enough information to capture the complex nature andrelationships of the changing data.

Thus, without a better to way to illustrate how data changes over time,users will continue to be frustrated in understanding and interpretingtheir data.

SUMMARY

A method, apparatus, system, and signal-bearing medium are providedthat, in an embodiment, display a time-lapse widget having timeindicators associated with times. In an embodiment, each of the timeindicators represents a relative ranking of changes to data at thetimes, and the size of the time indicators are proportional to theranking. The data associated with the time indicators is displayed andchanged in response to a slider moving over the time indicators. Invarious embodiments, the time indicators may be associated with a timeprior to the current time, in which case the associated data ishistorical, or after the current time, in which case the associated datais forecasted. In an embodiment, data that has been changed associatedwith the time indicator currently selected via the position of theslider is emphasized. A current value and a previous value for the dataassociated with the time indicator may be displayed, and the currentvalue may be changed to the previous value. In an embodiment, sliders inmultiple dialogs having related data are moved together, where movementof one of the sliders causes corresponding movement of the othersliders, and each of the sliders is at a time indicator associated withthe same time. In this way, related data that changes over time may bemore easily viewed.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the present invention are hereinafter describedin conjunction with the appended drawings:

FIG. 1 depicts a high-level block diagram of an example system forimplementing an embodiment of the invention.

FIG. 2 depicts a pictorial representation of a user interface for anexample dialog with a time-lapse widget, according to an embodiment ofthe invention.

FIG. 3 depicts a pictorial representation of a user interface for anexample dialog with a time-lapse widget showing future data, accordingto an embodiment of the invention.

FIG. 4 depicts a pictorial representation of a user interface for anexample dialog with a time-lapse widget having a ranking timeline,according to an embodiment of the invention.

FIG. 5 depicts a pictorial representation of a user interface forexample dialogs with time-lapse widgets having locked sliders, accordingto an embodiment of the invention.

FIG. 6 depicts a block diagram of an example data structure for atime-lapse data object, according to an embodiment of the invention.

FIG. 7 depicts a flowchart of example processing for receiving data froman application and storing the data in the time-lapse data object,according to an embodiment of the invention.

FIG. 8 depicts a flowchart of example processing for extracting datafrom the time-lapse data object and displaying the data via the dialogand the time-lapse widget, according to an embodiment of the invention.

FIG. 9 depicts a flowchart of example processing for updating the dialogin response to a change to the time-lapse widget, according to anembodiment of the invention.

FIG. 10 depicts a flowchart of example processing for displaying relateddialogs with locked sliders in time-lapse widgets, according to anembodiment of the invention.

FIG. 11 depicts a flowchart of example processing for displaying hoverdata and processing a set-as-current function, according to anembodiment of the invention.

It is to be noted, however, that the appended drawings illustrate onlyexample embodiments of the invention, and are therefore not consideredlimiting of its scope, for the invention may admit to other equallyeffective embodiments.

DETAILED DESCRIPTION

In an embodiment, a dialog displays a time-lapse widget having timeindicators associated with times. Each of the time indicators mayrepresent a relative ranking of changes to data at the times, and thesize of the time indicators are proportional to the ranking if present.The data associated with the time indicators is displayed and changed inresponse to a slider moving over the time indicators in the time-lapsewidget. In various embodiments, the time indicators may be associatedwith a time prior to the current time, in which case the associated datais historical, or after the current time, in which case the associateddata is forecasted. In an embodiment, data that has been changedassociated with the time indicator currently selected via the positionof the slider is emphasized. A current value and a previous value forthe data associated with the time indicator may be displayed, and thecurrent value may be changed to the previous value. In an embodiment,sliders in multiple dialogs having related data are moved together,where movement of one of the sliders causes corresponding movement ofthe other sliders, and each of the sliders is at a time indicatorassociated with the same time. In this way, data that changes over timemay be more easily viewed.

Referring to the Drawings, wherein like numbers denote like partsthroughout the several views, FIG. 1 depicts a high-level block diagramrepresentation of a computer system 100 connected to a network 130,according to an embodiment of the present invention. In an embodiment,the hardware components of the computer system 100 may be implemented byan IBM eServer iSeries computer system. However, those skilled in theart will appreciate that the mechanisms and apparatus of embodiments ofthe present invention apply equally to any appropriate computing system.

The major components of the computer system 100 include one or moreprocessors 101, a main memory 102, a terminal interface 111, a storageinterface 112, an I/O (Input/Output) device interface 113, andcommunications/network interfaces 114, all of which are coupled forinter-component communication via a memory bus 103, an I/O bus 104, andan I/O bus interface unit 105.

The computer system 100 contains one or more general-purposeprogrammable central processing units (CPUs) 101A, 101B, 101C, and 101D,herein generically referred to as the processor 101. In an embodiment,the computer system 100 contains multiple processors typical of arelatively large system; however, in another embodiment the computersystem 100 may alternatively be a single CPU system. Each processor 101executes instructions stored in the main memory 102 and may include oneor more levels of on-board cache.

The main memory 102 is a random-access semiconductor memory for storingdata and programs. In another embodiment, the main memory 102 representsthe entire virtual memory of the computer system 100, and may alsoinclude the virtual memory of other computer systems coupled to thecomputer system 100 or connected via the network 130. The main memory102 is conceptually a single monolithic entity, but in other embodimentsthe main memory 102 is a more complex arrangement, such as a hierarchyof caches and other memory devices. For example, memory may exist inmultiple levels of caches, and these caches may be further divided byfunction, so that one cache holds instructions while another holdsnon-instruction data, which is used by the processor or processors.Memory may be further distributed and associated with different CPUs orsets of CPUs, as is known in any of various so-called non-uniform memoryaccess (NUMA) computer architectures.

The memory 102 includes a time-lapse controller 150, a storage mechanism152, a dialog 154, and an application 156. Although the time-lapsecontroller 150, the storage mechanism 152, the dialog 154, and theapplication 156 are illustrated as being contained within the memory 102in the computer system 100, in other embodiments some or all of them maybe on different computer systems and may be accessed remotely, e.g., viathe network 130. The computer system 100 may use virtual addressingmechanisms that allow the programs of the computer system 100 to behaveas if they only have access to a large, single storage entity instead ofaccess to multiple, smaller storage entities. Thus, while the time-lapsecontroller 150, the storage mechanism 152, the dialog 154, and theapplication 156 are illustrated as being contained within the mainmemory 102, these elements are not necessarily all completely containedin the same storage device at the same time.

Further, although the time-lapse controller 150, the storage mechanism152, the dialog 154, and the application 156 are illustrated as beingseparate entities, in other embodiments some of them, or portions ofsome of them, may be packaged together. For example, in variousembodiments, the time lapse controller 150 and the storage mechanism 152may be packaged together and/or the dialog 154 and the application 156may be packaged together.

The storage mechanism 152 includes a time-lapse data object 158, and thedialog 154 includes a time-lapse widget 160. The time-lapse widget 160includes one or more time indicators 162. The time-lapse data object 158is further described below with reference to FIG. 6. In an embodiment,the dialog 154 and/or the time-lapse widget 160 may include data andlogic, which (when executed or interpreted) displays the data, asfurther described below with reference to FIGS. 2, 3, 4, and 5. Inanother embodiment, the dialog 154 and/or the time-lapse widget 160 mayinclude data and control tags, which when interpreted by anunillustrated browser, presentation manager, or other applicationdisplays the data, as further described below with reference to FIGS. 2,3, 4, and 5.

As described herein, and as is common in the art, the terms “dialog” and“widget” are units of the graphical user interface that allow the userto interface with an application, which in an embodiment is thetime-lapse controller 150. Widgets and dialogs display informationand/or invite the user to act. The terms dialog and widgets also referto the logic, statements, or instructions that, when interpreted orexecuted, make the graphic widget and dialog in the GUI look and performin a specified way. Context makes the usage clear. Further, the term“dialog” refers to any appropriate screen unit, such as a window, aframe, a view, or any other appropriate screen unit whether interactiveor display only and whether transitory or long lasting.

The application 156 is a source of data stored in the time-lapse dataobject 158 and displayed in the dialog 154. In various embodiments, theapplication 156 may be a system status monitor, a resource monitor, ajob status monitor, a performance monitor, an accounting program, or anyother application with data that changes over time. In variousembodiments, the application 156 may be related to the dialog 160,control the dialog 160, or may be a third-party dialog.

In an embodiment, the time-lapse controller 150 includes instructionscapable of executing on the processor 101 or statements capable of beinginterpreted by instructions executing on the processor 101 to performthe functions as further described below with reference to FIGS. 7, 8,9, 10, and 11. In another embodiment, the time-lapse controller 150 maybe implemented in microcode. In another embodiment, the time-lapsecontroller 150 may be implemented in hardware via logic gates and/orother appropriate hardware techniques.

The memory bus 103 provides a data communication path for transferringdata among the processor 101, the main memory 102, and the I/O businterface unit 105. The I/O bus interface unit 105 is further coupled tothe system I/O bus 104 for transferring data to and from the various I/Ounits. The I/O bus interface unit 105 communicates with multiple I/Ointerface units 111, 112, 113, and 114, which are also known as I/Oprocessors (IOPs) or I/O adapters (IOAs), through the system I/O bus104. The system I/O bus 104 may be, e.g., an industry standard PCI bus,or any other appropriate bus technology.

The I/O interface units support communication with a variety of storageand I/O devices. For example, the terminal interface unit 111 supportsthe attachment of one or more user terminals 121, 122, 123, and 124. Thestorage interface unit 112 supports the attachment of one or more directaccess storage devices (DASD) 125, 126, and 127 (which are typicallyrotating magnetic disk drive storage devices, although they couldalternatively be other devices, including arrays of disk drivesconfigured to appear as a single large storage device to a host). Thecontents of the main memory 102 may be stored to and retrieved from thedirect access storage devices 125, 126, and 127.

The I/O and other device interface 113 provides an interface to any ofvarious other input/Output devices or devices of other types. Two suchdevices, the printer 128 and the fax machine 129, are shown in theexemplary embodiment of FIG. 1, but in other embodiment many other suchdevices may exist, which may be of differing types. The networkinterface 114 provides one or more communications paths from thecomputer system 100 to other digital devices and computer systems; suchpaths may include, e.g., one or more networks 130.

Although the memory bus 103 is shown in FIG. 1 as a relatively simple,single bus structure providing a direct communication path among theprocessors 101, the main memory 102, and the I/O bus interface 105, infact the memory bus 103 may comprise multiple different buses orcommunication paths, which may be arranged in any of various forms, suchas point-to-point links in hierarchical, star or web configurations,multiple hierarchical buses, parallel and redundant paths, or any otherappropriate type of configuration. Furthermore, while the I/O businterface 105 and the I/O bus 104 are shown as single respective units,the computer system 100 may in fact contain multiple I/O bus interfaceunits 105 and/or multiple I/O buses 104. While multiple I/O interfaceunits are shown, which separate the system I/O bus 104 from variouscommunications paths running to the various I/O devices, in otherembodiments some or all of the I/O devices are connected directly to oneor more system I/O buses.

The computer system 100 depicted in FIG. 1 has multiple attachedterminals 121, 122, 123, and 124, such as might be typical of amulti-user “mainframe” computer system. Typically, in such a case theactual number of attached devices is greater than those shown in FIG. 1,although the present invention is not limited to systems of anyparticular size. The computer system 100 may alternatively be asingle-user system, typically containing only a single user display andkeyboard input, or might be a server or similar device which has littleor no direct user interface, but receives requests from other computersystems (clients). In other embodiments, the computer system 100 may beimplemented as a personal computer, portable computer, laptop ornotebook computer, PDA (Personal Digital Assistant), tablet computer,pocket computer, telephone, pager, automobile, teleconferencing system,appliance, or any other appropriate type of electronic device.

The network 130 may be any suitable network or combination of networksand may support any appropriate protocol suitable for communication ofdata and/or code to/from the computer system 100. In variousembodiments, the network 130 may represent a storage device or acombination of storage devices, either connected directly or indirectlyto the computer system 100. In an embodiment, the network 130 maysupport Infiniband. In another embodiment, the network 130 may supportwireless communications. In another embodiment, the network 130 maysupport hard-wired communications, such as a telephone line or cable. Inanother embodiment, the network 130 may support the Ethernet IEEE(Institute of Electrical and Electronics Engineers) 802.3xspecification. In another embodiment, the network 130 may be theInternet and may support IP (Internet Protocol).

In another embodiment, the network 130 may be a local area network (LAN)or a wide area network (WAN). In another embodiment, the network 130 maybe a hotspot service provider network. In another embodiment, thenetwork 130 may be an intranet. In another embodiment, the network 130may be a GPRS (General Packet Radio Service) network. In anotherembodiment, the network 130 may be a FRS (Family Radio Service) network.In another embodiment, the network 130 may be any appropriate cellulardata network or cell-based radio network technology. In anotherembodiment, the network 130 may be an IEEE 802.11B wireless network. Instill another embodiment, the network 130 may be any suitable network orcombination of networks. Although one network 130 is shown, in otherembodiments any number (including zero) of networks (of the same ordifferent types) may be present.

It should be understood that FIG. 1 is intended to depict therepresentative major components of the computer system 100 and thenetwork 130 at a high level, that individual components may have greatercomplexity that represented in FIG. 1, that components other than or inaddition to those shown in FIG. 1 may be present, and that the number,type, and configuration of such components may vary. Several particularexamples of such additional complexity or additional variations aredisclosed herein; it being understood that these are by way of exampleonly and are not necessarily the only such variations.

The various software components illustrated in FIG. 1 and implementingvarious embodiments of the invention may be implemented in a number ofmanners, including using various computer software applications,routines, components, programs, objects, modules, data structures, etc.,referred to hereinafter as “computer programs,” or simply “programs.”The computer programs typically comprise one or more instructions thatare resident at various times in various memory and storage devices inthe computer system 100, and that, when read and executed by one or moreprocessors 101 in the computer system 100, cause the computer system 100to perform the steps necessary to execute steps or elements comprisingthe various aspects of an embodiment of the invention.

Moreover, while embodiments of the invention have and hereinafter willbe described in the context of fully-functioning computer systems, thevarious embodiments of the invention are capable of being distributed asa program product in a variety of forms, and the invention appliesequally regardless of the particular type of signal-bearing medium usedto actually carry out the distribution. The programs defining thefunctions of this embodiment may be delivered to the computer system 100via a variety of signal-bearing media, which include, but are notlimited to:

(1) information permanently stored on a non-rewriteable storage medium,e.g., a read-only memory device attached to or within a computer system,such as a CD-ROM, DVD-R, or DVD+R;

(2) alterable information stored on a rewriteable storage medium, e.g.,a hard disk drive (e.g., the DASD 125, 126, or 127), CD-RW, DVD-RW,DVD+RW, DVD-RAM, or diskette; or

(3) information conveyed by a communications medium, such as through acomputer or a telephone network, e.g., the network 130, includingwireless communications.

Such signal-bearing media, when carrying machine-readable instructionsthat direct the functions of the present invention, representembodiments of the present invention.

Embodiments of the present invention may also be delivered as part of aservice engagement with a client corporation, nonprofit organization,government entity, internal organizational structure, or the like.Aspects of these embodiments may include configuring a computer systemto perform, and deploying software systems and web services thatimplement, some or all of the methods described herein. Aspects of theseembodiments may also include analyzing the client company, creatingrecommendations responsive to the analysis, generating software toimplement portions of the recommendations, integrating the software intoexisting processes and infrastructure, metering use of the methods andsystems described herein, allocating expenses to users, and billingusers for their use of these methods and systems.

In addition, various programs described hereinafter may be identifiedbased upon the application for which they are implemented in a specificembodiment of the invention. But, any particular program nomenclaturethat follows is used merely for convenience, and thus embodiments of theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The exemplary environments illustrated in FIG. 1 are not intended tolimit the present invention. Indeed, other alternative hardware and/orsoftware environments may be used without departing from the scope ofthe invention.

FIG. 2 depicts a pictorial representation of a user interface for anexample dialog 154-1 with a time-lapse widget 160-1, according to anembodiment of the invention. The example dialog 154-1 may be displayedon one or more of the terminals 121, 122, 123, and 124. The dialog 154-1is an example of the dialog 154 (FIG. 1), and the time-lapse widget160-1 is an example of the time-lapse widget 160 (FIG. 1).

The time-lapse widget 160-1 is illustrated with time indicators 162-1,162-2, 162-3, 162-4, 162-5, and 162-6, which are examples of the timeindicator 162 (FIG. 1). Associated with each of the time indicators162-1, 162-2, 162-3, 162-4, 162-5, and 162-6 is a respective time and/ordate, which may be, but need not be, displayed on the time-lapse widget160-1. The time-lapse widget 160-1 also includes a slider 210. As theslider 210 moves to various of the time indicators 162-1, 162-2, 162-3,162-4, 162-5, and 162-6, the dialog 154-1 displays data 205 thatcorresponds to the respective times and emphasizes or otherwisehighlights the data that changed at that time.

For example, FIG. 2 shows the slider 210 at a position on the time-lapsewidget 160-1 that corresponds to the time indicator 162-4, which has anassociated time of “Aug. 15, 2004.” Thus, the security level data 225 of“3” corresponds to the time of “Aug. 15, 2004,” and is emphasized by arectangle drawn around it to indicate that the security level 225changed at that time. In other embodiments, any appropriate type ofhighlight, color, reverse video, or icon may be used to draw attentionto or emphasize the changed data. As a further example, if the slider210 is moved to the time indicator 162-3, the dialog 205 changes thesecurity level 225 to correspond to the different time of “May 1, 2004.”Hence, by moving the slider 210 to different time indicators, the usercan view the security level of a computer system, for example, atdifferent times. Further, the number of time indicators 162 correspondsto the number of times that the data was changed. The rest of the data205 also corresponds to the time indicator 162-4, and some or all of therest of the data 205 may change to other values as the slider 210 movesfrom time indicator to time indicator.

In response to a pointer or cursor moving or hovering over one of thetime indicators 162, e.g., the time indicator 162-4, a hover dialog 230is displayed, which includes such data as the current value of data, anda previous value, which represents the data at the previous timeindicator (time indicator 162-3 in this example). The hover dialog 230may also indicate that the data was changed at the time associated withthe position of the slider 210 on the time-lapse widget 160-1, which is“Aug. 15, 2004,” in this example. The hover location has a type,indicating the type of data displayed. In another embodiment, the hoverdialog 230 may include additional data, such as the originator of thechanged data or any other appropriate data. The hover dialog 230includes a set-as-current command 235, which if selected, causes thecurrent value at the associated time to be changed to the previousvalue.

Also illustrated in FIG. 2 is a show related data command 225, whichafter selection causes dialogs related to the current dialog 154-1 to bedisplayed with their respective sliders locked in concert, as furtherdescribed below with reference to FIG. 5. FIG. 3 depicts a pictorialrepresentation of a user interface for a dialog 154-2 with a time-lapsewidget 160-2 showing future data, according to an embodiment of theinvention. The example dialog 154-2 may be displayed on one or more ofthe terminals 121, 122, 123, and 124. The dialog 154-2 is an example ofthe dialog 154 (FIG. 1), and the time-lapse widget 160-2 is an exampleof the time-lapse widget 160 (FIG. 1). The time-lapse widget 160-2 isnot only capable of controlling the display of historical data, but mayalso control the display of future data, as illustrated by a timeindicator 162-7, which is subsequent to the time indicator 162-8representing the current time. The time-lapse widget 160-2 alsoillustrates a future indication 305, which draws attention to the factthat when the slider 210 is within the future time period, the databeing displayed in the dialog 154-2 is future data. The time-lapsewidget 160-2 having future data may be used for those applications 156that, e.g., make projections, estimates, or forecasts. In an embodiment,the time-lapse widget 160-2 may also be used by standard dialogs thatthen receive forecasted data from third-party applications. For example,an operating system dialog may request a third-party application for aforecast of memory usage, receive the forecast, and display theforecasted or future data in a standard operating system dialog. Hence,in various embodiments, the historical data and the future data mayoriginate from the same application or from different applications.

FIG. 4 depicts a pictorial representation of a user interface for adialog 154-3 with a time-lapse widget 160-3 having a ranking timeline,according to an embodiment of the invention. The example dialog 154-3may be displayed on one or more of the terminals 121, 122, 123, and 124.The dialog 154-3 is an example of the dialog 154 (FIG. 1), and thetime-lapse widget 160-3 is an example of the time-lapse widget 160 (FIG.1). The time-lapse widget 160-3 includes a ranking timeline with timeindicators, such as the time indicator 162-9, which illustrates therank, importance, or intensity, or drastic nature of the change in thedata at the associated time.

The ranking of changes at the time indicators 162-9 is graphicallyillustrated by different heights of the time indicators 162-9 or ofdifferent distances from the baseline, with different heights ordistances reflecting different ranks in proportion. But in otherembodiments, ranking may be illustrated via colors, brightness, or anyother appropriate icon or indicator. The application 156 may define themeaning of the rank. In the example illustrated in FIG. 4, a verydrastic change with a high time indicator may mean that the entire webserver was stopped, was started, or had a catastrophic error, while aminor change with a low time indicator may mean that a node was movedwithin the web server. In various embodiments, a time-indicator 162-9with ranking may be used for historical data, future data, or any othertype of data. The ranking time-indicator 162-9 allows the user to easilysee the time at which the important changes occurred and to accessinformation about those changes. Since, in an embodiment, minor changesoccur frequently while major changes often occur infrequently, theranking time-indicator 169-2 cuts through the clutter of the minorchanges to bring focus to the major changes.

FIG. 5 depicts a pictorial representation of a user interface forrelated dialogs 154-4, 154-5, and 154-6 with respective time-lapsewidgets 160-4, 160-5, and 160-6 having locked sliders 210, according toan embodiment of the invention. The example dialogs 154-4, 154-5, and154-6 may be displayed on one or more of the terminals 121, 122, 123,and 124. The dialogs 154-4, 154-5, and 154-6 are examples of the dialog154 (FIG. 1), and the time-lapse widgets 160-4, 160-5, and 160-6 areexamples of the time-lapse widget 160 (FIG. 1). In response to a showrelated data command (as previously described above with reference toFIG. 2) initiated from the dialog 154-4, the time-lapse controller 150searches for data related to the data displayed in the dialog 154-4, andthe related data is then displayed in the dialogs 154-5 and 154-6, asfurther described below with reference to FIG. 10.

The sliders 210 in the time-lapse widgets 160-4, 160-5, and 160-6 arelocked, meaning that all of the sliders 210 in the time-lapse widgets160-4, 160-5, and 160-6 are positioned at the same time indicator 162-10(in this example the associated time is “Oct. 30, 2004”), so that thedata displayed in all of the dialogs 154-4, 154-5, and 154-6 are allassociated with the same time. Further, in response to one of thesliders in one of the dialogs 154-4, 154-5, and 154-6 moving, the othersliders 210 in the other time-lapse widgets also move. Locking thesliders 210 in the various dialogs enables display of the changing ofrelated data in different dialogs at the same time, so that therelationship of the related data can be more easily seen. Locking thesliders 210 may also be helpful when scrolling future data, e.g., whenmultiple applications forecast different aspects of the operatingsystem. By locking the dialogs together, the different forecasts can becorrelated and viewed together.

FIG. 6 depicts a block diagram of an example data structure for thetime-lapse data object 158, according to an embodiment of the invention.The time-lapse data object 158 includes records 605, 610, and 612, butin other embodiments any number of records with any appropriate data maybe present. Each of the records 605, 610, and 612 includes a timestampfield 615, a previous value field 620, a current value field 625, a userfield 630, a rank field 635, a type field 640, and a related field 645.

The timestamp field 615 indicates the date and/or time at which the datain the previous field 620 was changed to the data in the current valuefield 625. The timestamp field 615 may indicate historical dates/timesor future dates/times, and future dates/times may be used with anyappropriate data and type of data. The timestamp field 615 is associatedwith a particular time indicator 162 when displayed on the time-lapsewidget 160. The previous value field 620 includes data from a previoustime indicator 162 that corresponds to a record having a previoustimestamp field 615, which can be changed to via the set-as-currentcommand 235 if the field identified in the type 640 is editable, aspreviously described above with reference to FIG. 2. The current valuefield 625 includes data associated with the time indicator 162 thatcorresponds to the timestamp field 615.

The user field 630 identifies a user that created, changed, or isotherwise associated with the data in the current value field 625. Therank field 635 indicates the rank, importance, or significance of thechange from the previous value 620 to the current value 625. The rankfield 635 is used to create the ranking time indicator 162-9, aspreviously described above with reference to FIG. 4, but any appropriatevalue in the rank field 635 may be used for any appropriate data andtype of data.

The type field 640 indicates the type of the data indicated in theprevious value 620 and the current value 625 and may also include anidentification of the dialog 154 in which the data is to be displayed.The type 640 may be any appropriate type with any appropriate format forthe data. For example, the data may be formatted as a list view; a treeview of folders, sub-folders, directories, sub-directories, and files; atable having columns and rows; an icon view; a three-dimensional view; agraphical view; a grid; a property sheet; a pie chart; or any otherappropriate format. The data may further include images, audio, video,text, or any other appropriate data.

The related field 645 identifies a type of data that is related to thetype 640 and may also include an identification of a related dialog 154in which the related type is displayed. The related field 645 may beused to find related data to concurrently display with locked sliders210, as previously described above with reference to FIG. 5.

Using the example dialog 154-1 of FIG. 2, the record 610 includes atimestamp 615 of “May 1, 2004,” which corresponds to the time indicator162-3. The record 610 further includes a previous value 620 of “94.127,”which is the previous value of the usage at a time associated with aprevious time-indicator, such as the time-indicator 162-2. The record610 further includes a current value 625 of “77.892,” which is displayedin the dialog 154-1 as the usage. The record 610 further includes a user630 of “User A,” which identifies the user associated with the changethat was made on “May 1, 2004” from the previous value 620 to thecurrent value 625. The record 610 further includes a rank 635 of “0,”indicating a baseline rank for the time indicator 162-4 in the dialog154-1, but in other embodiments any appropriate value may be used toindicate a baseline rank and any appropriate rank scale may be used. Therecord 610 further includes a type 640 of “system disk pool,” whichindicates the type of the data in the previous value field 620 and thecurrent value field 625. The record 610 further includes a related value645 of “resource reserves,” which indicates that a record having a typeof “resource reserves,” such as the record 605, contains data that isrelated to the data in the record 610.

Again using the example dialog 154-1 of FIG. 2, the record 612 includesa timestamp 615 of “Aug. 15, 2004,” which corresponds to the timeindicator 162-4. The record 612 further includes a previous value 620 of“4,” which is the previous value in the hover dialog 230 that isreturned to in response to selection of the set-as-current command 235.The record 612 further includes a current value 625 of “3,” which isdisplayed in the dialog 154-1 as the security level and is also includedin the hover dialog 230 as the current value. The record 612 furtherincludes a type 640 of “security level,” which indicates the type of thedata in the previous value field 620 and the current value field 625.

FIG. 7 depicts a flowchart of example processing for receiving data fromthe application 156 and storing the data in the time-lapse data object158, according to an embodiment of the invention. Control begins atblock 700. Control then continues to block 705 where the application 156sends data to the dialog 154. Control then continues to block 710 wherethe dialog 154 sends the data to the time-lapse widget 160. Control thencontinues to block 715 where the time-lapse widget 160 sends the data tothe time-lapse controller 150. Control then continues to block 720 wherethe time-lapse controller 150 stores the data as records in thetime-lapse data object 158, as previously described above with referenceto FIG. 6.

FIG. 8 depicts a flowchart of example processing for extracting datafrom the time-lapse data object 158 and displaying the data via thedialog 154 and the time-lapse widget 160, according to an embodiment ofthe invention. Control begins at block 800. Control then continues toblock 805 where a user invokes the application 156. In anotherembodiment, the application 156 may be invoked from another program orvia any appropriate means.

Control then continues to block 810 where the application 156 invokesthe dialog 154. Control then continues to block 815 where the dialog 154displays the data associated with the dialog 154 and invokes thetime-lapse widget 160. Control then continues to block 820 where thetime-lapse widget 160 displays the data associated with the time-lapsewidget 160 and determines the position of the slider 210 on thetime-lapse widget 160. The slider 210 may have an initial or defaultposition on the time-lapse widget 160 if the slider 210 has not yet beenmoved. Control then continues to block 825 where the time-lapse widget160 invokes the time-lapse controller 150 and passes the time indicator162 associated with the position of the slider 210, in order to displaydata associated with the time indicator 162, as further described belowwith reference to FIG. 9.

Control then continues to block 830 where the time-lapse widget 160receives a user interface event. Control then continues to block 835where the time-lapse widget 160 determines whether the received userinterface event indicates that the position of the slider 210 haschanged on the time-lapse widget 160 to a different time indicator 162.

If the determination at block 835 is true, then the position of theslider 210 has changed on the time-lapse widget 160, so control returnsfrom block 835 to block 820, as previously described above.

If the determination at block 835 is false, then the position of theslider 210 has not changed on the time-lapse widget 160, so controlcontinues from block 835 to block 840 where the time-lapse widget 160determines whether the received event indicates a request for relateddata, as initiated, e.g., via the user interface element 225. If thedetermination at block 840 is true, then the received event indicates arequest for related data, so control continues to block 845 where therelated data is displayed, as further described below with reference toFIG. 10. Control then returns to block 830, as previously describedabove.

If the determination at block 840 is false, then the received event isnot a request for related data, so control continues from block 840 toblock 850 where the time-lapse widget 160 determines whether thereceived event indicates a hover event, as previously described abovewith reference to FIG. 2. If the determination at block 850 is true,then the event is a hover event, so control continues from block 850 toblock 855 where hover data 230 is displayed, as further described belowwith reference to FIG. 11. Control then returns to block 830, aspreviously described above.

If the determination at block 850 is false, then the event is not ahover event, so control continues to block 860 where the dialog 154processes other events. Control then returns to block 830, as previouslydescribed above.

FIG. 9 depicts a flowchart of example processing for updating the dialog154 in response to a change to the time-lapse widget 160, according toan embodiment of the invention. Control begins at block 900. Controlthen continues to block 905 where the time-lapse widget 160 invokes thetime-lapse controller 150 and passes the time indicator 162 associatedwith the current position of the slider 210 and a request for dataassociated with the time indicator 162. Control then continues to block910 where the time-lapse controller 150 finds a record or records in thetime-lapse object data 158 associated with the passed time indicator162. If lock mode is on, then the time-lapse controller 150 also findsdata associated with related dialogs and other applications (relateddialogs were previously described above with reference to FIG. 5). Invarious embodiments, the applications may provide historical orfuture/projected/forecasted data, and the applications may be associatedwith the dialog 154 or may be third-party applications. The processingof block 910 is analogous to the processing of block 1015, as furtherdescribed below with reference to FIG. 10).

Control then continues to block 915 where the time-lapse controller 150determines whether the time indicator 162 is in future time, i.e., thetime indicator 162 associated with the current position of the slider210 is later than the current time. If the determination at block 915 istrue, then the time indicator 162 is in future time, so controlcontinues to block 920 where the time-lapse controller 150 sends aninstruction to the time-lapse widget 160 requesting the time-lapsewidget 160 to indicate future data, e.g., via the future indication 305,as previously described above with reference to FIG. 3.

Control then continues to block 925 where the time-lapse controller 150sends data from the found records to the time-lapse widget 160 or thetime-lapse widgets 160, in the case of related dialogs. Control thencontinues to block 930 where the time-lapse widget(s) 160 send the datato the dialog(s) 154. Control then continues to block 935 where thedialog(s) 154 display the data. Control then continues to block 999where the logic of FIG. 9 returns.

If the determination at block 920 is false, then the time indicator 162is not in future time, so control continues from block 915 to block 925,as previously described above.

FIG. 10 depicts a flowchart of example processing for displaying relateddialogs 154 with locked sliders 210 in the time-lapse widgets 160,according to an embodiment of the invention. Control begins at block1000. Control then continues to block 1005 where the time-lapse widget160 invokes the time-lapse controller 150 and passes the time indicator162 associated with the current position of the slider 210 and a requestfor related data. Control then continues to block 1010 where thetime-lapse controller 150 finds the first record in the time-lapseobject data 158 associated with the time indicator 162.

Control then continues to block 1015 where the time-lapse controller 150retrieves records and/or data related to the first record. In anembodiment, the time-lapse controller 150 retrieves records that have atype field 640 that matches the related field 645 of the first record.In another embodiment, the time-lapse controller 150 finds records withthe same type field 640 as the first record. In another embodiment, thetime-lapse controller 150 finds records with the same user field 630 asthe first record. In an other embodiment, the time-lapse controller 150finds records with the same timestamp 615 (or near, e.g., within athreshold of the timestamp) as the first record. In another embodiment,the time-lapse controller 150 finds data from other applications via anapplication plug-in. For example, the time-lapse controller 150 may scanperformance data from performance applications or management data frommanagement applications. In an embodiment, the user may specify a filterthat the time-lapse controller 150 uses to find records or to finddialogs. In various embodiments, the time-lapse controller 150 may findall records that have similarities or may find all records for alldialogs that have at least one record with a similarity.

Control then continues to block 1020 where the time-lapse controller 150turns lock mode on (lock mode was previously checked at block 910).Control then continues to block 1025 where the time-lapse controller 150sends the found records to their respective time-lapse widgets 160(e.g., the time-lapse widgets 160-4, 160-5, and 160-6, as previouslydescribed above with reference to FIG. 5). Control then continues toblock 1030 where the time-lapse widgets 160 send the data from therecords to their respective dialogs 154. The time-lapse widgets 160 alsomove their respective sliders to a location that matches the timestampfield 615 in their records. Control then continues to block 1035 wherethe dialogs 154 (e.g., the dialogs 154-4, 154-5, and 154-6 of FIG. 5)display their respective data. Control then continues to block 1099where the logic of FIG. 10 returns.

FIG. 11 depicts a flowchart of example processing for displaying hoverdata and processing a set-as-current function, according to anembodiment of the invention. Control begins at block 1100. Control thencontinues to block 1105 where the time-lapse widget 160 invokes thetime-lapse controller 150 and passes the time indicator 162 associatedwith the current location of the slider 210 and the type associated withthe hover location, as previously described above with reference to FIG.2. Control then continues to block 1110 where the time-lapse controller150 finds records in the time-lapse data object 158 associated with thepassed time indicator and type. Control then continues to block 1115where the time-lapse controller 150 retrieves the previous value 620 andcurrent value 625 from the found record and sends them to the time-lapsewidget 160. Control then continues to block 1120 where the time-lapsewidget 160 sends the previous and current values to the dialog 154.Control then continues to block 1125 where the dialog 154 displays theprevious and current values, e.g., in the hover dialog 230, aspreviously described above with reference to block FIG. 2.

Control then continues to block 1130 where the time-lapse widget 160determines whether a set-as-current command 235 (FIG. 2) is requested.If the determination at block 1130 is true, then a set-as-currentcommand is requested, so control continues to block 1135 where thetime-lapse widget 160 sends the set-as-current request and the previousvalue to the dialog 154. Control then continues to block 1140 where thedialog 154 sends the set-as-current request and the previous value tothe application 156. Control then continues to block 1145 where theapplication 156 causes the previous value to be stored in the currentvalue 625 of the appropriate record in the time-lapse data object 158,as previously described above with reference to FIG. 7. Control thencontinues to block 1199 where the logic of FIG. 11 returns.

If the determination at block 1130 is false, then a set-as-currentfunction is not requested, so control continues to block 1199 where thelogic of FIG. 11 returns.

In the previous detailed description of exemplary embodiments of theinvention, reference was made to the accompanying drawings (where likenumbers represent like elements), which form a part hereof, and in whichis shown by way of illustration specific exemplary embodiments in whichthe invention may be practiced. These embodiments were described insufficient detail to enable those skilled in the art to practice theinvention, but other embodiments may be utilized and logical,mechanical, electrical, and other changes may be made without departingfrom the scope of the present invention. Different instances of the word“embodiment” as used within this specification do not necessarily referto the same embodiment, but they may. The previous detailed descriptionis, therefore, not to be taken in a limiting sense, and the scope of thepresent invention is defined only by the appended claims.

In the previous description, numerous specific details were set forth toprovide a thorough understanding of embodiments of the invention. But,the invention may be practiced without these specific details. In otherinstances, well-known circuits, structures, and techniques have not beenshown in detail in order not to obscure the invention.

1. A method comprising: displaying a time-lapse widget comprising aplurality of time indicators, wherein each of the plurality of timeindicators indicates a respective time and represents a relative rankingof changes to data associated with the plurality of time indicators,wherein each of the plurality of time indicators has a size proportionalto the relative ranking of the changes to the data, wherein the relativeranking of the changes to the data comprises a relative importance ofthe changes to the data at the respective times, and wherein a number ofthe plurality of time indicators corresponds to a number of times thatthe data was changed; changing display of the data associated with eachof the plurality of time indicators in response to a slider moving overthe plurality of time indicators; displaying an current value and aprevious value for the data associated with one of the plurality of timeindicators; and changing the current value to the previous value for thedata.
 2. The method of claim 1, wherein at least one of the plurality oftime indicators is associated with a time prior to a current time, andthe data associated with the at least one of the plurality of timeindicators comprises historical data.
 3. The method of claim 1, whereinat least one of the plurality of time indicators is associated with atime after the current time, and the data associated with the at leastone of the plurality of time indicators comprises forecasted data. 4.The method of claim 1, further comprising: emphasizing the data that haschanged in response to the slider moving over the associated timeindicator.
 5. An apparatus comprising: means for displaying a time-lapsewidget comprising a plurality of time indicators, wherein each of theplurality of time indicators indicates a respective time and representsa relative ranking of changes to data associated with the plurality oftime indicators, wherein each of the time indicators has a sizeproportional to the respective relative ranking of the changes to thedata, wherein the relative ranking of the changes to the data comprisesa relative importance of the changes to the data at the respectivetimes, and wherein a number of the plurality of time indicatorscorresponds to a number of times that the data was changed; means fordisplaying the data associated with each of the plurality of timeindicators in response to a slider moving over the plurality of timeindicators; means for displaying an current value and a previous valuefor the data associated with one of the plurality of time indicators;and means for changing the current value to the previous value for thedata.
 6. The apparatus of claim 5, wherein at least one of the pluralityof time indicators is associated with a time prior to a current time,and the data associated with the at least one of the plurality of timeindicators comprises historical data.
 7. The apparatus of claim 5,wherein at least one of the plurality of time indicators is associatedwith a time after the current time, and the data associated with the atleast one of the plurality of lime indicators comprises forecasted data,and the forecasted data originates from a third-party application. 8.The apparatus of claim 5, further comprising: means for emphasizing thedata that has changed in response to the slider moving over theassociated time indicator.
 9. A storage medium encoded withinstructions, wherein the instructions when executed comprise:determining a first subset of a plurality of data items; in response toa command to show related data, finding a second subset of the pluralityof data items and determining that the second subset of the plurality ofdata items is related to the first subset of the plurality of dataitems; displaying a first time-lapse widget comprising a first pluralityof time indicators, wherein each of the first plurality of timeindicators indicates a respective time and represents a first relativeranking of changes to the first subset of the plurality of data itemsassociated with the first plurality of time indicators, wherein each ofthe first plurality of time indicators has a respective first sizeproportional to the first relative ranking of the changes to the firstsubset of the plurality of data items, wherein the first relativeranking of the changes to the first subset of the plurality of dataitems comprises a relative importance of the changes to the first subsetof the plurality of data items at the respective times, and wherein anumber of the first plurality of time indicators corresponds to a numberof times that the first subset of the plurality of data items waschanged; displaying a second time-lapse widget comprising a secondplurality of time indicators, wherein each of the second plurality oftime indicators indicates a respective time and represents a secondrelative ranking of changes to the second subset of the plurality ofdata items associated with the second plurality of time indicators,wherein each of the second plurality of time indicators has a respectivesecond size proportional to the second relative ranking of the changesto the second subset of the plurality of data items, wherein the secondrelative ranking of the changes to the second subset of the plurality ofdata items comprises a relative importance of the changes to the secondsubset of the plurality of data items at the respective times, andwherein a number of the second plurality of time indicators correspondsto a number of times that the second subset of the plurality of dataitems was changed; moving a first slider on the first time-lapse widgetand moving a second slider on the second time-lapse widget together,wherein movement of the first slider on the first time-lapse widgetcauses corresponding movement of the second slider on the secondtime-lapse widget; displaying the first subset of the plurality of dataitems in a first dialog associated with the first time-lapse widget anddisplaying the second subset of the plurality of data items in a seconddialog associated with the second time-lapse widget, wherein theplurality of data items are associated with plurality of respectivepositions of the first slider and the second slider, wherein each of therespective positions of the first slider is at the respective timeindicators on the first time-lapse widget, and wherein each of therespective positions of the second slider is at the respective timeindicators on the second time-lapse widget; displaying an current valueand a previous value for one of the plurality of data items that is inthe first subset and that is associated with one of the first pluralityof time indicators; and changing the current value to the previous valuefor the one of the plurality of data items that is in the first subset.10. The storage medium of claim 9, wherein the finding the second subsetof the plurality of data items and determining that the second subset isrelated to the first subset further comprises: finding the second subsetof the plurality of data items based on the one of the plurality of dataitems that is in the first subset.
 11. The storage medium of claim 10,wherein the finding the second subset of the plurality of data items anddetermining that the second subset is related to the first subsetfurther comprises: finding the second subset of the plurality of dataitems based on a specification of related data.
 12. The storage mediumof claim 10, wherein the finding the second subset of the plurality ofdata items and determining that the second subset is related to thefirst subset further comprises: finding the second subset of theplurality of data items based on the data items that have a same type asthe one of the plurality of data items that is in the first subset. 13.A computer system comprising: a processor; and a storage device encodedwith instructions, wherein the instructions when executed on theprocessor comprise: determining a first subset of a plurality of dataitems, in response to a command to show related data, finding a secondsubset of the plurality of data items and determining that the secondsubset of the plurality of data items is related to the first subset ofthe plurality of data items, displaying a first time-lapse widgetcomprising a first plurality of time indicators, wherein each of thefirst plurality of time indicators indicates a respective time andrepresents a first relative ranking of changes to the first subset ofthe plurality of data items associated with the first plurality of timeindicators, wherein each of the first plurality of time indicators has arespective first size proportional to the first relative ranking of thechanges to the first subset of the plurality of data items, wherein thefirst relative ranking of the changes to the first subset of theplurality of data items comprises a relative importance of the changesto the first subset of the plurality of data items at the respectivetimes, and wherein a number of the first plurality of time indicatorscorresponds to a number of times that the first subset of the pluralityof data items was changed, displaying a second time-lapse widgetcomprising a second plurality of time indicators, wherein each of thesecond plurality of time indicators indicates a respective time andrepresents a second relative ranking of changes to the second subset ofthe plurality of data items associated with the second plurality of timeindicators, wherein each of the second plurality of time indicators hasa respective second size proportional to the second relative ranking ofthe changes to the second subset of the plurality of data items, whereinthe second relative ranking of the changes to the second subset of theplurality of data items comprises a relative importance of the changesto the second subset of the plurality of data items at the respectivetimes, and wherein a number of the second plurality of time indicatorscorresponds to a number of times that the second subset of the pluralityof data items was changed, moving a first slider on the first time-lapsewidget and moving a second slider on the second time-lapse widgettogether, wherein movement of the first slider on the first time-lapsewidget causes corresponding movement of the second slider on the secondtime-lapse widget, displaying the first subset of the plurality of dataitems in a first dialog associated with the first time-lapse widget anddisplaying the second subset of the plurality of data items in a seconddialog associated with the second time-lapse widget, wherein theplurality of data items are associated with a plurality of respectivepositions of the first slider and the second slider, wherein each of therespective positions of the first slider is at the respective timeindicators on the first time-lapse widget, and wherein each of therespective positions of the second slider is at the respective timeindicators on the second time-lapse widget, displaying an current valueand a previous value for one of the plurality of data items that is inthe first subset and that is associated with one of the first pluralityof time indicators, and changing the current value to the previous valuefor the one of the plurality of data items tat is in the first subset.14. The computer system of claim 13, wherein the finding the secondsubset of the plurality of data items and determining that the secondsubset is related to the first subset further comprises: finding thesecond subset of the plurality of data items based on the one of theplurality of data items that is in the first subset.
 15. The computersystem of claim 14, wherein the finding the second subset of theplurality of data items and determining that the second subset isrelated to the first subset further comprises: finding the second subsetof the plurality of data items based on a specification of related data.16. The computer system of claim 14, wherein the finding the secondsubset of the plurality of data items and determining that the secondsubset is related to the first subset further comprises: finding thesecond subset of the plurality of data items based on the data itemsthat have a same type as the one of the plurality of data items that isin the first subset.
 17. The computer system of claim 14, wherein thefinding the second subset of the plurality of data items and determiningthat the second subset is related to the first subset further comprises:finding the second subset of the plurality of data items based the dataitems that are associated with a same user as the one of the pluralityof data items that is in the first subset.
 18. The computer system ofclaim 14, wherein the finding the second subset of the plurality of dataitems and determining that the second subset is related to the firstsubset further comprises: finding the second subset of the plurality ofdata items based the data items that were changed at a same time as theone of the plurality of data items in the first subset.
 19. The computersystem of claim 14, wherein the finding the second subset of theplurality of data items and determining that the second subset isrelated to the first subset further comprises: finding the second subsetof the plurality of data items based the data items that were changed ata time within a threshold of the one of the plurality of data items inthe fist subset.
 20. A method for configuring a computer, comprising:configuring the computer to display a time-lapse widget comprising aplurality of time indicators, wherein each of the plurality of timeindicators indicates a respective time and represents a relative rankingof changes to data associated with the plurality of time indicators,wherein each of the plurality of time indicators has a size proportionalto the relative ranking of the changes to the data, wherein the relativeranking of the changes to the data comprises a relative importance ofthe changes to the data at the respective times, and wherein a number ofthe plurality of time indicators corresponds to a number of times thatthe data was changed; configuring the computer to display the dataassociated with each of the plurality of time indicators in response toa slider moving over the plurality of time indicators; configuring thecomputer to display an current value and a previous value for the dataassociated with one of the plurality of time indicators; and configuringthe computer to change the current value to the previous value for thedata.
 21. The method of claim 20, wherein at least one of the pluralityof time indicators is associated with a time prior to a current time,and the data associated with the at least one of the plurality of timeindicators comprises historical data.
 22. The method of claim 20,wherein at least one of the plurality of time indicators is associatedwith a time after the current time, and the data associated with the atleast one of the plurality of time indicators comprises forecasted data.23. The method of claim 20, further comprising: configuring the computerto emphasize the data that has changed in response to the slider movingover the associated time indicator.